Apparatus and method of processing images

ABSTRACT

An apparatus and method of processing images is disclosed. In a particular embodiment, the method includes receiving a selection of a first image from a plurality of images stored at a memory device and displaying the first image. The method also includes receiving image modification data to modify processing of the first image displayed and providing an adjusted value of an image processing parameter to an image processor. The adjusted value of the image processing parameter is determined based at least in part on the image modification data.

FIELD

The present disclosure is generally related to processing images.

DESCRIPTION OF RELATED ART

Advances in technology have resulted in smaller and more powerfulcomputing devices. For example, there currently exist a variety ofportable personal computing devices, including wireless computingdevices, such as portable wireless telephones, personal digitalassistants (PDAs), and paging devices that are small, lightweight, andeasily carried by users. More specifically, portable wirelesstelephones, such as cellular telephones and internet protocol (IP)telephones, can communicate voice and data packets over wirelessnetworks. Further, many such wireless telephones include other types ofdevices that are incorporated therein. For example, a wireless telephonecan also include a digital still camera and a digital video camera.Also, such wireless telephones can process executable instructions,including software applications, such as a web browser application, thatcan be used to access the Internet. As such, these wireless telephonescan include significant computing capabilities.

A user of a portable photographic device (e.g., a wireless phone with acamera) may have preferences with regard to one or more displayvariables. For instance, the user may have a tolerance limit ofblurriness, darkness, contrast, etc. It would be advantageous toincorporate the user's preferences into image display by the device.

SUMMARY

A photo viewing application enables viewing and editing of an image thathas been captured and stored at a portable electronic device. The photoviewing application has hooks to an image processing pipeline of theportable electronic device so that the image processing pipeline can betuned based on user input received via the photo viewer application. Forexample, the photo viewing application may provide a series ofinteractive screens to the user to determine one or more characteristicsof the image, such as a memory color saturation or an overall imagesharpness or blurriness that a user may adjust. Adjusted values of imageprocessing parameters may be stored and used by the image processingpipeline during processing of subsequent images that are captured at theportable electronic device.

In a particular embodiment, a method of processing image data isdisclosed. The method includes receiving a selection of a first imagefrom a plurality of images stored at a memory device and displaying thefirst image. The method also includes receiving image modification datato modify processing of the first image displayed and providing to animage processor an adjusted value of an image processing parameter. Theadjusted value of the image processing parameter is determined based atleast in part on the image modification data.

In another particular embodiment, an apparatus is disclosed and includesa processor and a memory accessible to the processor. The memoryincludes a photo album module executable by the processor to receive aselection via a graphical user interface (GUI) of a first image selectedfrom a plurality of images stored at the memory and to retrieve theselection from the memory. The apparatus also includes an interfacemodule executable by the processor to display the first image at adisplay device and an image processing module executable by theprocessor to receive image modification data to modify processing of thefirst image and to provide to the processor an adjusted value of animage processing parameter. The adjusted value of the image processingparameter is based at least in part on the image modification data.

In another particular embodiment, a computer readable medium storingcomputer executable code is disclosed and includes code for receiving aselection via a graphical user interface (GUI) of a first image from aplurality of images stored at a memory device. The computer readablemedium also stores code for displaying the first image, code forreceiving image modification data to modify the first image, and codefor providing an adjusted value of an image processing parameter to animage processor. The adjusted value of the image processing parameter isdetermined based at least in part on the image modification data.

In another particular embodiment, an apparatus is disclosed and includesmeans for receiving a selection via a graphical user interface (GUI) ofa first image selected from a plurality of images stored at a memorydevice and display means for displaying the first image at a displaydevice. The apparatus also includes update means for receiving firstimage modification data to modify processing of the first image prior todisplaying a first modified image that is based on the first image andfor providing a first adjusted value of a first image processingparameter to an image processor. The first adjusted value of the firstimage processing parameter is based at least in part on the first imagemodification data.

One particular advantage provided by at least one of the disclosedembodiments is that an image processing pipeline can be tuned by a user.Subjective image processing parameters, such as face blurriness andmemory color enhancement, may be adjusted to satisfy a user's personalpreference and applied to subsequent image capture operations. An imagecapture and viewing experience of the user may therefore be enhanced.

Other aspects, advantages, and features of the present disclosure willbecome apparent after review of the entire application, including thefollowing sections: Brief Description of the Drawings, DetailedDescription, and the Claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a particular illustrative embodiment of asystem to capture and display images;

FIG. 2 is a block diagram of a particular embodiment of a system tocapture and display images;

FIG. 3 is a block diagram of another particular illustrative embodimentof a system to capture and display images;

FIG. 4 is a block diagram of a particular illustrative embodiment of anapparatus to display images;

FIG. 5 is an illustration of a captured image to be modified accordingto a user selected value of an image processing parameter;

FIG. 6 is an illustration depicting training of an apparatus accordingto a user selected value of an image processing parameter;

FIG. 7 is an illustration depicting a particular embodiment of trainingof an apparatus according to a user selected value of an imageprocessing parameter;

FIG. 8 is a flow chart of a particular illustrative embodiment of amethod of training an apparatus according to a user selected value of animage processing parameter;

FIG. 9 is a flow chart of a particular illustrative embodiment of amethod of modifying image data according to a user selected value of animage processing parameter;

FIG. 10 is a flow chart of a particular illustrative embodiment of amethod of training an apparatus according to user selected values of aplurality of image processing parameters;

FIG. 11 is a flow chart of a particular illustrative embodiment of amethod of training an apparatus according to user selected values of oneor more image processing parameters; and

FIG. 12 is a block diagram of portable device including an apparatus tocapture and display images.

DETAILED DESCRIPTION

Referring to FIG. 1, a particular embodiment of a system to capture,process, and display images and is depicted and generally designated100. The system 100 includes an image capture device 110 and a userinterface 120 coupled to a central processing unit 130. The centralprocessing unit 130 is coupled to a memory 140 and may be configured tocommunicate with a service provider 150. The central processing unit 130includes a photo album application 132 that includes an image editor.The photo album application 132 may be pre-installed or may be acquiredfrom a third party source that may be accessed via e.g., wirelessaccess, wired access such as by Universal Serial Bus (USB) connection,or via another means of access. The central processing unit 130 alsoincludes an image processing pipeline 134 that can be tuned in responseto user interaction with a stored image via the photo album application132.

In a particular embodiment, the image capture device 110 includes afocusing module 112, a lens 114, a sensor 116, and an exposure module118. The focusing module 112 and the exposure module 118 may beoperative to adjust a focus condition of the lens 114 and an exposurefor an image capture operation at the sensor 116. The sensor 116 isconfigured to detect incoming light and to provide image data to theimage processing pipeline 134.

The user interface 120 includes a display device and an input device(not shown), such as a touchscreen or one or more physical navigationand selection devices, as illustrative examples. The user interface 120is configured to receive image display data 160 and to display acorresponding image 124. The user interface 120 may also be configuredto enable user interaction via the input device with one or moregraphical user interface (GUI) elements 126, such as a menu 122 ofselectable image processing parameters and an adjustable control 128,illustrated as a slider control, to adjust a value of a selectedparameter.

The central processing unit 130 implements the photo album application132 and the image processing pipeline 134. The photo album application132 may interact with an application programming interface (API) thatenables interaction with the image processing pipeline 134. The centralprocessing unit 130 may include one or more processing devices (notshown), such as one or more general purpose processors, digital signalprocessors, image processors, or any combination thereof. The centralprocessing unit 130 may also be configured to control communication ofthe image display data 160 to the user interface 120 and to receiveimage data, such as image modification data 162, from the user interface120 in response to user input. The central processing unit 130 may alsobe configured to control file storage and retrieval operations at thememory 140.

The image processing pipeline 134 is configured to receive capturedimage data from the image capture device 110 and to provide processedimage data for storage at the memory 140, illustrated as a first datafile corresponding to a first image 142, a second data filecorresponding to a second image 144, and a third data file correspondingto a third image 146. The image processing pipeline 134 includesmultiple image processing modules, such as a representative first imageprocessing module 136 and Nth image processing module 138. In aparticular embodiment, each image processing module may be implementedas dedicated circuitry configured to perform one or more processingoperations on incoming image data and to provide output image data to anext processing module. In other embodiments, one or more modules may beimplemented by a processor executing instructions to perform thecorresponding processing operation. The image processing modules mayapply general image adjustments such as a black level subtraction, alens correction, or one or more channel gains, while other imageprocessing modules may apply region-of-interest specific adjustments,such as a memory color enhancement or face blurriness detection.

One or more of the image processing modules 136, 138 may read a value ofa corresponding image processing parameter, which may be stored indedicated memory cells, registers, on-chip random access memory (RAM),the memory 140, or any combination thereof. As illustrated, the firstimage processing module 136 is responsive to a default value of a firstimage processing parameter 137 and the Nth image processing module 138is responsive to a default value of an Nth image processing parameter139. For example, a channel gain module may read multiple gain valuescorresponding to multiple color channels of the image data, while amemory color enhancement module may read one or more saturation gainvalues to be applied to detected memory color regions of the image data.

During operation, the image capture device 110 may perform an imagecapture operation of a first image to generate image data that is sentto the image processing pipeline 134. The image processing pipeline 134may process the received image data using the image modules 136, 138 andthe default values of the image processing parameters 137, 139. Theprocessed image data may be stored in the memory 140 as the first datafile for the first image 142. A second image capture operation of asecond image may be performed in a similar manner to generate the seconddata file for the second image 144.

The photo album application 132 may be launched in response to userinput via the user interface 120. The photo album application 132 mayprovide to the user interface 120 a list or menu of a plurality ofimages that are stored at the memory 140. A user selection of the firstimage may be received from the user interface 120 and provided to thephoto album application 132. In response, image data from the first datafile for the first image 142 may be read and provided for display at theuser interface 120.

Upon viewing the displayed image, a user may determine that one or moreadjustments would be preferable. For example, the user may decide that asky region of the image should be more vibrant or have a richer bluecolor. The user may select an option to launch the image editor of thephoto album application 132 and select an option to adjust the blue skysaturation parameter, such as by selecting a corresponding option of themenu 122. In response, the adjustable control 128 may be displayed toenable the user to make adjustments to the displayed image. In aparticular illustrative embodiment, a predetermined order of parameteradjustments is imposed within the menu 122, allowing the user to makeadjustments to several parameters if executed according to thepredetermined order. In a particular illustrative example, the user canadjust a parameter labeled parameter 1 after which the user can adjustanother parameter labeled parameter 3. However, the user is preventedfrom adjusting the parameter 3 before adjusting the parameter 1.

The predetermined order of parameter adjustments may be based on anorder of imaging processing in the image processing pipeline 134. Forexample, in an imaging pipeline in which sharpening occurs prior to skintone correction, the user may be permitted to adjust the sharpeningparameter prior to adjusting the skin tone parameter, but the user maybe prevented from adjusting the skin tone prior to adjusting thesharpness.

A user may be permitted to make adjustments to a plurality of imageparameters, and the user interface/display device 120 displays theadjusted image processed according to a predetermined order associatedwith the imaging pipeline. For example, in a system in which the imagingpipeline processes sharpness prior to processing skin tone, when a userenters a skin tone adjustment prior to entering a sharpness adjustment,the user interface/display device 120 will display a modified image inwhich the sharpness adjustment has been applied prior to the skin toneadjustment.

As the user interacts with the adjustable control 128, imagemodification data 162 is received indicating modification of the imageto be displayed, and the photo album application 132 causes thedisplayed image to be adjusted accordingly. For example, the photo album132 may emulate processing of a memory color enhancement module (notshown) of the image processing pipeline 134. As another example, theactual memory color enhancement module (not shown) may be launched tooperate on the image display data 160.

When the user is satisfied with the changes to the image, one or moreadjusted image processing parameter value(s) 164 may replace thecorresponding default values used by the image processing pipeline 134.As a result, when a subsequent image capture operation is performed, theadjusted parameter value(s) 164 will be used. To illustrate, after theuser has adjusted the sky region of the first image, a blue skysaturation gain parameter may be adjusted to have a larger defaultvalue. Subsequently, when a third image capture operation of a thirdimage is performed, and the image processing pipeline 134 identifies thethird image as having a blue sky region, the larger default gain valuewill be applied and the resulting image data will saved at the memory asthe third image data file for the third image 146.

In this manner, a user may tune the image processing pipeline 134 to theuser's particular preference. To increase a likelihood that the userwill converge to a preferred set of parameter values that aresatisfactory to the user, one or more tests or confirmations may beperformed prior to committing image processing parameter changes, suchas will be discussed with respect to FIGS. 6 and 10. The history of userchanges to the image processing parameters may be maintained andprovided as a parameter change history 166 to the service provider 150,such as via a wireless or wireline network. The service provider 150 mayaggregate change history data from multiple devices for use in futuredesigns, updates, or statistical analyses. In addition, the history ofchanges applied to the system 100 may be stored at the system 100 andused in case the user decides to undo one or more changes or to restorethe original default parameters that were provided with the system 100.

Although the photo album application 132 is described as enabling tuningof the image processing pipeline 134 based on user feedback to storedimages, in other embodiments one or more modules or operations of theimage processing pipeline 134 may be adjusted in a similar manner duringan image preview operation prior to a captured image being stored at thememory 140. In a particular embodiment, the adjusted parameter value(s)164 may be applied to modify one or more images stored at the memory 140in place of, or in addition to, being used to update the imageprocessing pipeline 134.

Referring to FIG. 2, a particular embodiment of a system to capture,process, and display images and is depicted and generally designated200. The system 200 includes an image capture device 210 and a userinterface 220 coupled to a processing unit 230. The processing unit 230is coupled to a memory 240. The memory 240 includes a photo album module260 and an interface and image editing module 262 that enable tuning ofan image processing pipeline that is implemented via an image processingmodule 264. The system 200 can be implemented into a single apparatussuch as a camera or phone. In a particular embodiment, the image capturedevice 210, the user interface 220, the processing unit 230, and thememory 240 correspond to the image capture device 110, the userinterface 120, the central processing unit 130, and the memory 140 ofFIG. 1, respectively.

In a particular embodiment, the processing unit 230 includes one or morehardware processors, such as a general purpose processor 232 and animage processor 234. The general purpose processor 232 and the imageprocessor 234 may be configured to execute sets of program instructionssuch as modules that are stored at and retrieved from the memory 240.For example, the general purpose processor 232 may execute the photoalbum module 260 and the image processor 234 may execute the imageprocessing module 264.

The memory 240 is a tangible storage device that stores a plurality ofimage files 242, executable modules 244, and parameter data 246. Theimage files 242 can include a first representative image file 250, asecond representative image file 252, and a third representative imagefile 254. One or more of the plurality of image files 242 may correspondto images that were captured by the image capture device 210 andprocessed at the processing unit 230 prior to storage at the memory 240.

In a particular embodiment, images captured by the image capture device210 are stored as Joint Photographic Experts Group Opeg) format filesand are associated with a corresponding exchangeable image file format(EXIF) tag, such as the representative EXIF tag 256 associated with thefirst image file 250. The EXIF tag 256 can include data valuesrepresentative of various conditions under which a first image wascaptured or processed. For example, the EXIF tag 256 can include dataindicating whether the first image was taken by the image capture device210, a white balance, exposure index, and other conventional or customparameters associated with the first image. The EXIF tag 256 enablesimages taken under similar conditions or having similar characteristicsto be easily located at the memory 240.

The executable modules 244 include the photo album module 260, theinterface and photo editing module 262, the image processing module 264,a parameter value comparison module 266, and a stored image count module268. When executed at the processing unit 230, one or more of theexecutable modules 244 may access a portion of the parameter data 246,such as a parameter change history 270, one or more factory defaultparameter values 272, a count threshold 274, one or more default imageprocessing parameter values 276, or any combination thereof.

The photo album module 260 may be executable by the processing unit 230to enable a user to select an image from the plurality of image files242 via the user interface 220. The photo album module 260 may beexecutable to receive a selection of an image, such as the first imagecorresponding to the first image file 250, to retrieve the selectionfrom the memory 240, and to provide image data to the interface andphoto editing module 262 for display.

The interface and photo editing module 262 may be executable by theprocessing unit 230 to display an image at a display device of the userinterface 220 based on received image data, such as image data that isprovided by the photo album module 260. The interface and photo editingmodule 262 may also be executable to provide one or more graphicalcontrols at the user interface 220 to enable a user to conduct imageediting operations of a displayed image.

The interface and photo editing module 262 may be responsive to aselection from the user interface 220 to adjust one or more imageprocessing parameter values based on user modifications to the displayedimage in a manner similar to the operation of the photo albumapplication with image editor 132 of FIG. 1. For example, the interfaceand photo editing module 262 may receive a selection of an imageprocessing parameter that the user wishes to modify. In response, theinterface and photo editing module 262 may display an adjustablecontrol, such as the adjustable control 128 of FIG. 1. Manipulation ofthe adjustable control may be received by the interface and photoediting module 262 as image modification data and in response theinterface and photo editing module 262 may provide an adjusted parametervalue to the processing unit 230 to be applied to the displayed image.The image processing module 264 may be executed to generate modifiedimage data in accordance with the adjusted parameter value. Theinterface and photo editing module 262 may display the modified imagedata at the display device so that the user can observe an effect ofmanipulating the control on the displayed image.

The image processing module 264 may be executable to apply various imageprocessing operations to received image data. The image processingmodule 264 may include various sub-modules, such as a parameteradjustment module 280, general image processing modules 282, and regionof interest processing modules 284. The general image processing modules282 may be executable to perform one or more operations such as blacklevel subtraction, lens geometric distortion correction, lens rolloffcorrection, channel gains, luma adaptation, hue, saturation, intensity,sharpening, and adaptive spatial filtering. One or more of the generalimage processing modules 282 may operate based on corresponding valuesof the default parameter values 276.

The region of interest modules 282 may be executable to performoperations at particular regions of interest within an image. Forexample, a face blurriness detection module 286 may be executable todetect one or more face regions within an image and to perform an edgedetection operation and to alert a user when the face region isdetermined to be undesirably blurry. To illustrate, the face blurrinessdetection module 286 may compare a ratio of a number of soft edgeswithin the face to a number of hard edges within the face and to comparethe ratio to a threshold value from the default parameter values 276. Amemory color module 288 may be executable to locate one or more regionswithin the image that correspond to skin, foliage, sky, or whiteregions. The memory color module 288 may perform a skin tone enhancementoperation to apply a gain to skin tone saturation in the detected skinregions, a blue sky enhancement operation to apply a gain to a bluesaturation in the detected sky regions, a green foliage enhancementoperation to apply a gain to green saturation in the detected foliageregions, a chroma suppression operation to reduce a chroma component inthe detected white regions, or any combination thereof One or more ofthe face blurriness threshold value, the memory color saturation gainvalues, or values used by the chroma suppression operation may be storedwith the default parameter values 276.

The image processing module 264 may be executable to apply one or moreof the general image processing modules 282 and the region of interestprocessing modules 284 to image data received from the image capturedevice 210 to function as an image processing pipeline, such as theimage processing pipeline 134 of FIG. 1. Alternatively, or in addition,one or more of the modules 282 and 284 may be selectively executed, suchas in response to user input to adjust the default parameter values 276via the interface and image editing module 262.

The parameter adjustment module 280 may be executable to apply one ormore tests or conditions prior to committing a requested change to thedefault parameter values 276. For example, the parameter adjustmentmodule 280 may provide an adjusted parameter value to the parametervalue comparison module 266 to determine whether a history of changes tothe parameter value is converging. As another example, the parameteradjustment module 280 may prevent a change to the default parametervalue when the stored image count module 268 indicates that aninsufficient number of comparison images are stored to adequatelydemonstrate to a user the effect of applying the change to previouslysaved images.

The parameter value comparison module 266 may be executable to comparean adjusted parameter value to a history of changes to the parametervalue. The parameter value comparison module 266 may locate first,second, and third adjusted values of the parameter in the parameterchange history 270. The parameter value comparison module 266 candetermine if the variance among the values of the image processingparameter associated with the viewed images is within an acceptablevalue. When the variance exceeds the acceptable value, the imageprocessing parameter value comparison module 266 may generate a resultindicating that the change history of the parameter suggests that theuser is not converging to a preferred value of the image processingparameter. In response, the user may be prompted to restore the imageprocessing parameter to a factory default value or to a prior adjustedvalue. For example the parameter value comparison module 266 may comparea first adjusted value of a first image processing parameter with asecond adjusted value of the first image processing parameter, comparethe first adjusted value of the first image processing parameter with athird adjusted value of the first image processing parameter, andprovide a warning in response to determining that the first adjustedvalue is substantially equal to the second adjusted value, or that thefirst adjusted value is substantially equal to the third adjusted value.

The stored image count module 268 may be executable to locate imageswithin the plurality of image files 242 that were taken by the imagecapture device 210 and that would be affected by an adjusted parametervalue. For example, when the adjusted parameter is the threshold valuefor the face blurriness detection operation 286, the stored image countmodule 268 may locate stored images that were not previously flagged asblurry but would be flagged as blurry if the adjusted parameter valuewere applied. As another example, when the adjusted value is a memorycolor saturation value, such as skin tone saturation, the stored imagecount module 268 may locate stored images taken with the same whitebalance and exposure as a current image (such as a displayed image), aswell as any other applicable parameters used to determine how to findand modify the particular memory color. As another example, the storedimage count module 268 may locate stored images substantially matchingthe current image's luma level and overall high-frequency component whenan adaptive spatial filtering parameter value is being adjusted.

The stored image count module 268 may compare the number of storedimages with similar characteristics that have been located to the countthreshold 274, which may have different values for the differentprocessing parameters. When the number of located images do not meet thecount threshold 274 for the adjusted parameter, a message may begenerated indicating that an insufficient number of comparison imageswere located to demonstrate the effects of the change to the user.

During operation, the system 200 may apply the various executablemodules 244 to enable a user to tune various image processing operationswhile verifying that changes are responsibly applied and reversible orreturnable to factory default settings. For example, a user may elect toview stored images via a selection at the user interface 220. The usermay select a particular image to view via the photo album module 260,which may call the interface and photo imaging module 262. The user maydecide that the displayed image is not satisfactory, and may select anoption via the user interface 220 that causes the interface and photoimaging module 262 to walk the user through a number of options todetermine which aspects of the image can be improved.

The interface and photo imaging module 262 may present a series ofoptions to guide the user through various regions of interest. Forexample, the image processing module 264 may launch the face blurrinessdetection module 286 to locate one or more face regions in the image.For every face located in the image, the face may be displayed to theuser and the user may be queried as to whether the face was too blurryand should have been flagged at the time of image capture, so that usercould have retaken the picture. The images of the faces can be scaledbased on a horizontal resolution of the display at the user interface220 relative to a common display resolution, such as 1280 pixels for aconventional personal computer display. For example, when the system 200is a portable device such as a phone with a 320 pixel horizontalresolution, each face may be scaled by a factor of four to emulate asharpness of resolution that the user will experience after downloadingthe picture to a home computer.

If the user indicates that the a face is too blurry, the stored imagecount module 268 may be launched to determine whether a sufficientnumber of pictures stored at the memory 240 would be affected if theface blurriness threshold were to be reduced to a next incrementalvalue. If so, the user may be presented with a sample, or all, of thefaces of each of the located images, scaled according to the displayresolution, and the user may be informed that each of the presentedfaces would have triggered a face blurriness warning at the newthreshold value. The user may then indicate whether to implement thechange or maintain the default value via a selection at the userinterface 220.

Next, the image processing module 264 may launch the memory color module288 to locate one or more skin tone regions in the image. The interfaceand photo editing module 264 may provide an adjustable control to changea saturation in the skin tone regions. If the user selects an adjustedvalue of the skin tone saturation, the stored image count module 268 maybe launched to determine whether a sufficient number of pictures storedat the memory 240 have skin regions for the same white balance andexposure as the current image, as well as for any other parameters usedto determine how to find and modify skin tone regions, and avoidingpictures at low light level or D65 for pictures taken under tungstenlighting. If a sufficient number of pictures are located, the user maybe presented with a series of the located images showing an effect ofthe change to those images. For each located image, the original imagemay be displayed side-by-side with an adjusted image using modifiedimage data generated by the memory color module 288 using the adjustedparameter. Based on user input, the change to the skin tone saturationmay be accepted by the user or discarded. The process for evaluatingchanges to the skin tone region may be repeated for foliage, blue sky,and chroma suppression.

After evaluating the detected memory color regions, a check may beperformed as to whether the image is over- or under-sharpened based onan adaptive spatial filtering algorithm. If the user elects to modifythe sharpening, the memory 240 is searched for stored images having thesame luma value and similar high-frequency components. A stored imagemay be displayed side-by-side with a modified version of the storedimage that has been modified according to the proposed adjustment. Theinterface and photo editing module 262 may prompt the user with amessage such as “This image was also sharpened the same amount due tosimilar characteristics. Are you still sure you want to change thecamera's default setting? If this image is too ‘noisy,’ then we do notrecommend changing this camera setting.” The process may repeat for oneor more additional image processing operations that may be adjusted.

If the user elects to make a change to any of the parameter values whenthe stored image count module 268 does not locate enough similar imagesto meet the count threshold 274, the user may be prevented fromcommitting the change until a later time when enough pictures areavailable to demonstrate the effects of the change to the user.Alternatively, the user may be presented with a warning such as“Normally we would show you several other pictures that would be changedhad they been taken with this new setting, but you have not taken enoughpictures yet. We recommend you wait until there are more pictures in thedatabase before making this change.”

Referring to FIG. 3, a particular illustrative embodiment of a system tocapture, process, and display images is disclosed and generallydesignated 300. The system 300 includes an apparatus such as a portabledevice 310 coupled to an external computer 330 that is coupled to adisplay device 320 and an input device 380. The portable device 310includes a camera 340, an image processor 350, and a memory 360. In aparticular embodiment, the system 300 enables tuning of image processingparameters, such as described with respect to FIGS. 1 and 2, to beperformed at the external computer 330 and the resulting changesprovided to the portable device 310. Tuning the image processingparameters at the external computer 330 may enable use of greaterprocessing resources, a larger resolution display, and a more convenientuser interface for a user than may be available at the portableelectronic device 310.

In operation, the portable device 310 can provide image data 372 to theexternal computer 330. For example, the camera 340 can captureinformation associated with an image. The image processor 350 canprocess the information that has been captured by the camera 340,producing image data 372 that can be provided to the external computer330. The memory 360 stores processing algorithms 362 such as algorithmsused in the image processing pipeline 134 of FIG. 1 or the imageprocessing module 264 of FIG. 2. The memory 360 also includes processingparameters 364, processor instructions 366, a processing parameterchange history 368, and one or more stored images 370. The processingparameters 364 may be used in connection with the processing algorithms362. In an illustrative embodiment, the processing parameters 364 maycorrespond to the default parameter values 276 of FIG. 2.

The portable device 310 may provide one or more image processingalgorithms 374 to the external computer 330. For example, data and/orinstructions representing one or more processing algorithms 362 storedin the memory 370 can be transferred to the external computer 330. Alsoavailable to be transferred to the external computer 330 are processorinstructions 366. For instance, the processor instructions 366 canspecify an order of image processing algorithms to be executed by theexternal computer 330.

The portable device 310 can provide to the external computer 330 imageprocessing parameters 376, such as one or more of the processingparameters 364 stored in the memory 360. The processing parameters 376may be used in connection with the image processing algorithms 374 thatare provided to the external computer 330.

In a particular illustrative example, the portable device 310 providesthe current value of a first image processing parameter to the externalcomputer 330 and also provides an image processing algorithm 374 to theexternal computer 330. The external computer 330 may receive the currentvalue of the image processing parameter and may execute the receivedimage processing algorithm 374 via a photo editing application toproduce an adjusted value of the image processing parameter based onuser input. The adjusted value of the first image processing parametercan be transmitted back to the portable device 310 as one or moreadjusted image processing parameters 378. Thus, the external computer330 can execute processing algorithms to produce adjusted values ofimage processing parameters that can be transmitted back to the portabledevice 310 and stored as current settings of the processing parameters364.

The portable device 310 may also maintain the change history 368. In aparticular illustrative embodiment, the memory 360 stores a history ofadjusted values of a first image processing parameter. The history ofadjusted values of the first image processing parameter can be useful indetermining whether the user has demonstrated consistency or indecisionin the user's choice of the adjusted value of the first image processingparameter. If the user has shown indecision, the portable device 310 mayrevert to a default value of the first image processing parameter whenadditional images are requested by the user to be displayed. If the userhas demonstrated consistency in the adjusted value of the first imageprocessing parameter, the portable device 310 may replace the defaultvalue of the first image processing parameter with the adjusted value ofthe first image processing parameter.

The display device 320 is illustrated displaying an image editinggraphical user interface (GUI) 322 that can enable a user of theexternal computer 330 to provide image modification data via the inputdevice 330 that can be processed by the external computer 330 to arriveat an adjusted value of a corresponding image processing parameter. In aparticular illustrative embodiment, the external computer 330 receivesinput, such as user generated image modification data associated with aparticular image processing parameter, via the GUI 322. Additionally,the user may provide as input an affirmation that a displayed image thathas been modified from a corresponding stored image according to theadjusted value of the particular image processing parameter isacceptable to the viewer in its modified form. The affirmation may beinput via the GUI 322 or via the input device 380.

In operation, a user can capture an image as raw image data via thecamera 340. The image processor 350 can process the raw image data toproduce the image data 372 that can be downloaded to the externalcomputer 330. Based on the image data 372, the external computer 330 candisplay an image at the display device 320. The user can provide imagemodification data associated with a first image processing parameter viathe image editing GUI 322 to the external computer 330 in a mannersimilar to the described operation of the photo album application 132 ofFIG. 1 or the interface and photo editing module 262 of FIG. 2. Theexternal computer 330 can process the image modification data accordingto one or more of the image processing algorithms 374 and received fromthe portable device 310. The external computer 330 can generate anadjusted value of a first image processing parameter that was previouslysent as one or more of the image processing parameters 376. The externalcomputer 330 can process the image data 372 according to the adjustedvalue of the first image processing parameter to be displayed as amodified image at the display device 320. The user may verify the changeto the to the image the display device 320 and the adjusted value of thefirst image processing parameter may be returned to the portableelectronic device 310 as one or more of the adjusted image processingparameters 378.

In a particular illustrative example, the portable electronic device 310can apply the adjusted value of the first image processing parameter toone or more of the plurality of stored images 370 to produce acorresponding plurality of adjusted images. One or more of the pluralityof adjusted images can be sent to the external computer 330 to bedisplayed at the display device 320. The user can provide anaffirmation, via the input device 380 or via the image editing GUI 322,that the adjusted value of the first image processing parameter isacceptable as applied to each of the modified images. In a particularillustrative example, after the user has provided correspondingaffirmations for each of a predetermined threshold number of images, thefirst image processing parameter default value can be replaced by theadjusted value of the first image processing parameter value at theportable electronic device 310. In a similar fashion, after the user hasprovided affirmations for each of the predetermined threshold number ofimages displayed according to the adjusted value of a second imageprocessing parameter, a default value the second image processingparameter may be replaced by a an adjusted value of the second imageprocessing parameter.

FIG. 4 is a block diagram of a particular illustrative embodiment of anapparatus to display images. The apparatus includes a parameteradjustment menu 410 that is coupled to a display device 440. Theapparatus may be included in a portable device such as a phone, apersonal digital assistant, or a digital camera. For example, thedisplay device 440 may be implemented in the user interface 120 of FIG.1 or the user interface 220 of FIG. 2.

The parameter adjustment menu 410 includes a plurality of selectableimage processing parameters 420. The selectable image processingparameters include, but are not limited to, a face edge detectionthreshold, memory colors (such as one or more of blue sky saturation,green foliage saturation, skin tone enhancement, or white chromasuppress), image sharpness/blurriness (adaptive spatial filter), blacklevel subtraction, geometric lens distortion correction, lens rolloff,channel gain, luma adaptation, hue, saturation, and intensity. The menu410 can be displayed at the display device 440 or other display means,or may be implemented as one or more buttons or other physical selectiondevices. The display device 440 can display a first image 450 and agraphical user interface (GUI) 460. The GUI 460 can include an adjuster462 such as a slider control, a save control 464, and a reset control466.

In operation, a user can select one or more of the menu optionsrepresenting image processing parameters within the parameter adjustmentmenu 410. For example, the user may select the imagesharpness/blurriness (adaptive spatial filter) menu option 430. The usercan adjust the adjuster 462 of the GUI 460, producing image modificationdata that is used to produce an adjusted value of the imagesharpness/blurriness parameter. The adjusted value of the imagesharpness/blurriness parameter can be applied to first image datacorresponding to the first image 450 to produce a modified first imagethat can be displayed at the display device 440. When the user decidesthat the sharpness/blurriness parameter is adjusted according to userpreference, the user can select the save control 464 to save theadjusted value of the sharpness/blurriness parameter. If the user is notsatisfied with the modified image, the user can return thesharpness/blurriness parameter to a default value by selecting the resetcontrol 466.

The adjusted value of the sharpness/blurriness parameter can be appliedto a second image to produce a modified second image that is displayed.For example, a first screen 470 may display a second image beforeapplying the adjusted value of the sharpness/blurriness parameter. Thesecond image may have been captured by an image capture device of anapparatus and may be displayed at the first screen 470 according to adefault value of the sharpness/blurriness parameter. The user canrequest that the adjusted value of the sharpness/blurriness parameter beapplied to the second image by selecting an “apply adjustment” softbutton 472.

A second screen 480 may display a modified second image that has beenprocessed with the adjusted value of the sharpness/blurriness parameterthat was determined from the user modifications to the first image. Theuser can select an “Undo” soft button 482 to revert to the default valueof the sharpness/blurriness parameter, returning the display to thefirst screen 470. The user can affirm that the modified second image isacceptable by selecting a “yes” button 492 or reject the modified secondimage by selecting a “no” button 494.

In a similar fashion, the user can view a plurality of images and eachimage can be modified according to an adjusted value of a selected imageprocessing parameter. In a particular illustrative embodiment, when apredetermined threshold number of images has been viewed and indicatedas acceptable as modified by the adjusted value of the selected imageprocessing parameter, a default value of the image processing parametercan be replaced by the adjusted image parameter value.

FIG. 5 is an illustration of a captured image 500 to be modifiedaccording to a user selected value of an image processing parameter. Theimage 500 includes a green foliage region 502, a blue sky region 504, awhite region 506, and a face region 508. In a particular embodiment, aselected image processing parameter is associated with a memory color,and a corresponding adjusted value of the image processing parameter isassociated with a saturation of the memory color. For example, one ormore of the regions 502-508 may be identified via a memory colorprocessing operation, such as may be performed by the memory colormodule 288 of FIG. 2.

In a particular illustrative embodiment, a user can select a firstregion of the image 500 at a first interactive screen 520 that isdisplayed and that prompts the user to select a first region of interestof the image 500 that the user would like to adjust. A secondinteractive screen 530 may be displayed after receiving an user input atthe first interactive screen 520, such as a selection of the greenfoliage region 502. The second interactive screen 530 prompts the userto affirm a current value of a first image processing parameter asapplied to the first region, or to input first image modification data.The first image processing parameter is associated with a first visualquality of the first region of interest, e.g., green color saturation.

In a particular illustrative embodiment, a third interactive screen 540may be displayed, prompting the user to select a second region ofinterest of the first image 500 that the user would like to adjust. In aparticular illustrative example, the first region 502 may be “grayedout” to indicate unavailability, and the user may select the blue skyregion 504. A fourth interactive screen 550 can be displayed afterdisplaying the third interactive screen 540, prompting the user toaffirm a current value of a second image processing parameter or toprovide second image modification data. The second image processingparameter is associated with a second visual quality e.g., blue skysaturation.

By selecting a first region to be modified according to a first imageprocessing parameter, the user can observe modification of a region ofthe image that has a distinct color characteristic. For example, theuser can select the green foliage region 502 to be modified according toa green memory saturation parameter. In a similar fashion the user canselect the blue sky region 504 to be modified according to a blue skysaturation parameter. Similarly, the user can select the white region506 to be modified according to a white chroma suppress image processingparameter. Further, the user can select the face region 508 to bemodified according to a skin tone saturation parameter. Thus, the usercan observe a modification in a particular image processing parameter asapplied to a particular region of an image. In doing so, the user canmake adjustments to each of a plurality of image processing parameters,each of which is adjusted according to its effect on a correspondingregion of a displayed image.

FIG. 6 is an illustration depicting a series of screens that may bedisplayed to enable training of an image display apparatus according toa user selected value of an image processing parameter. Screen 610displays an image “A.” A user can modify image data associated with theimage A to produce a modified image A, shown in screen 620. Asillustrated, the user has provided sharpness/blurriness imagemodification data, such as via the user interface 120 of FIG. 1, and themodified image A shown in screen 620 is sharper than the image A shownin screen 610.

User input that is applied to generate the modified image data can beprocessed to produce an adjusted value of a corresponding imageprocessing parameter, e.g., a sharpness/blurriness parameter. Theadjusted value of the image processing parameter can be applied to aplurality of additional images. The additional images may be receivedfrom an image capture device, such as the image capture device 110 ofFIG. 1, or may be retrieved from storage by executing a photo albumapplication, such as the photo album application 132 of FIG. 1.

A series of screens may be displayed to the user to illustrate theeffect of applying the change to image A to other images that havesimilar characteristics to image A, such as similar white balance andexposure values. For example, screen 630 shows an image B after theadjusted value of the image processing parameter has been applied.Similarly, screen 640 displays an image C after applying the adjustedvalue of the image processing parameter, and screen 650 displays animage D after the adjusted value of the image processing parameter hasbeen applied. The number of images that are displayed may be determinedaccording to a predetermined threshold number of images, such as fourimages, that are to be displayed to the user before committing theadjusted value of the image processing parameter.

A confirmation screen 660 may be displayed after the user has viewedscreens 620, 630, 640, and 650. The confirmation screen 660 queries theuser, based on having viewed images A, B, C and D with the adjustedvalue of the image processing parameter applied, whether the user wishesto change a default parameter value to the adjusted value of the imageprocessing parameter. The user is prompted to select “yes” or “no”. Byselecting “yes” the default parameter value is changed to the adjustedimage processing parameter. By selecting “no” the default imageprocessing parameter value is retained.

FIG. 7 is an illustration depicting a particular embodiment of trainingof an apparatus according to a user selected value of an imageprocessing parameter. In a first iteration, the user is presented withfour versions of an image that has been processed according to each offour parameter values of a particular image processing parameter. Forexample, the user may access each of the four versions consecutively,such as viewing each of screens 710, 720, 730, and 740 consecutively. Asan illustrative example, values of the image processing parameter insuccessive screens 710, 712, 714, and 716 may have corresponding valuesof 1.00, 2.00, 3.00, and 4.00, differing by an increment Δ₁=1.00. Theuser may be asked to select a preferred version of the image from thechoices at screens 710, 712, 714, and 716.

In a second successive iteration, the user may be presented with asecond set of four screens 718, 720, 722, and 724, each having an imagegenerated according to a corresponding associated parameter value of theparticular image processing parameter within a portion of a numericalrange of the first iteration. Each associated parameter value may differfrom the associated parameter value of the subsequent screen by a fixedamount Δ₂ that is smaller than Δ₁. The user may be asked to select apreferred version of the image and associated parameter value from thescreens 718, 720, 722, and 724. In a particular illustrative example,Δ₂=0.2 and screens 718, 720, 722, and 724 have corresponding parametervalues 2.60, 2.80, 3.00, and 3.20.

Optionally, the user can request a third successive iteration and make avisual comparison amongst a third set of screens 726, 728, 730, and 732,with corresponding parameter values within a portion of a numericalrange of the second iteration. Each successive pair of screens of thethird iteration may have a uniform difference of parameter values A₃that is smaller than A₂. From the screens 726, 728, 730, and 732, theuser may select a preferred image and its associated parameter value.Should the user indicate that there is no visually discemable differenceamong the displayed screens 726, 728, 730, and 732, selection of theparameter value can be based on the user selection made in the previousiteration. In a particular illustrative example, screens 726, 728, 730,and 732 have corresponding parameter values 3.10, 3.15, 3.20, and 3.25.

For example, in the first iteration the user selects screen 714, withthe corresponding parameter value of 3.00. In the second iteration, theuser selects screen 724, with the corresponding parameter value of 3.20.In the third iteration, the user is unable to discern a visualdifference among the screens 726, 728, 730, and 732. Consequently, theselected screen 724 and its associated parameter value of 3.20 as theuser selected adjusted value of the particular parameter. This iterativetechnique can be used in conjunction with a selectable portion of animage, as depicted in FIG. 5, to adjust a corresponding image parameterby limiting visual display to the selected portion.

FIG. 8 is a flow chart of a particular illustrative embodiment of amethod of training an image processing apparatus according to a userselected value of an image processing parameter. A selection of a firstimage processing parameter is received from a menu including a pluralityof distinct image processing parameters, at 810. In an illustrativeembodiment, the selection may be received via the menu 410 of FIG. 4,which may be displayed at the user interface 110 of FIG. 1 or the userinterface 210 of FIG. 2.

Image modification data associated with a first modified image that isdisplayed at a display device is received, at 820. For example, theimage modification data may be the image modification data 162 of FIG. 1that is received at the central processing unit 130 and provided to thephoto album application 132.

An adjusted value of the first image processing parameter is provided toa hardware image processor, at 830. For example, the adjusted value maybe provided as the adjusted parameter value(s) 164 to be used by theimage processing pipeline 134 of the central processing unit 130 ofFIG. 1. The adjusted value is determined based at least in part on theimage modification data. As another example, the adjusted value may bereceived at the image processor 234 in response to execution of theinterface and photo editing module 262 at the general purpose processor232 of FIG. 2. The adjusted value of the first image processingparameter can be used by the image processor 234 during execution of theimage processing module 264 to be applied to a first image to produce afirst modified image that is displayed at the user interface 220. Themethod terminates at 840.

FIG. 9 is a flow chart of a particular illustrative embodiment of amethod of modifying image data according to a user selected value of animage processing parameter. A selection is received via a graphical userinterface (GUI) of a first image from a plurality of images stored at amemory device, at 910. In a particular illustrative embodiment, theselection is received via a photo album application at a portableelectronic device, such as the photo album application 132 of FIG. 1. Animage processor, an image capture device coupled to the image processor,and a display device may be integrated in a portable electronic device.

The first image is displayed, at 920. In a particular illustrativeembodiment, the first image is displayed according to a default value ofthe image processing parameter. A selection of an image processingparameter is received from a menu that includes a plurality of imageprocessing parameters, at 930, such as the menu 410 of FIG. 4. Imagemodification data to modify processing of the first image is received,at 940. In a particular illustrative embodiment, the image modificationdata is generated in response to a graphical user interface (GUI), suchas via the GUI elements 126 provided at the user interface 110 ofFIG. 1. An adjusted value of the image processing parameter is providedto an image processor and is determined based on the image modificationdata, at 950. As an example, the adjusted value may be provided as theadjusted parameter value(s) 164 of FIG. 1.

First image data associated with the first image is modified accordingto the adjusted value of the image processing parameter to provide afirst adjusted image, at 960. Second image data received from an imagecapture device and associated with a second image is modified accordingto the adjusted value of the image processing parameter, at 970. Thirdimage data received from the image capture device and associated with athird image is modified according to the adjusted value of the imageprocessing parameter, at 980. For example, the first, second, and thirdmodified sets of image data may be used to generate the screens 630-650of FIG. 6 prior to confirming the effect of applying the adjusted valueat the confirmation screen 660. The method terminates at 990.

FIG. 10 is a flow chart of a particular illustrative embodiment of amethod of training an image processing apparatus according to userselected values of a plurality of image processing parameters. In anillustrative embodiment, the method may be performed at one or more ofthe systems of FIGS. 1-3.

A user selects a stored image to display, at 1010. Based on a portion ofa displayed image, the user determines an image processing parameter tobe adjusted according to a user preference, at 1020. The user inputsimage processing parameter adjustment data related to a particular imageprocessing parameter (e.g., the n^(th) parameter of a total of N imageprocessing parameters) according to user preference and based on avisual comparison of the portion of the displayed image with imageprocessing parameter adjustment data applied to the portion of thedisplayed image, at 1030. The method terminates at 1040.

As an illustrative example of operation with reference to FIG. 5, a usercan select green foliage memory color saturation to be the particularimage processing parameter at the screen 520 by selecting the greenfoliage region 502 of the displayed image 500. The user can provideimage modification data by adjusting one or more controls at the screen530. The green foliage region 502 at screen 530 that has been modifiedaccording to the adjusted value of green foliage memory color saturationcan be compared with the unmodified green foliage region 502 that isdisplayed at screen 520 according to a default value of green foliagememory color saturation.

FIG. 11 is a flow chart of a particular illustrative embodiment of amethod of training an image processing apparatus according to userselected values of one or more image processing parameters. As anexample, the method may correspond to operations described with respectto the system 200 of FIG. 2 to walk a user through available imageadjustment options to tune image processing at the system 200.

The method begins with setting an index number n equal to 1, at 1110.The user is asked if the user elects to adjust an n image processingparameter, where n is an integer index having a value between 1 and N,at 1120. If the answer is “no,” the method proceeds to 1182, and adetermination is made whether n is equal to a total number of imageprocessing parameters (N). If n is equal to N, the method ends at 1190.If n is not equal to N, the index n is increased by 1, at 1184, and themethod returns to 1120.

At 1120, if the user wishes to adjust the n^(th) image processingparameter, the method proceeds to 1130, and image modification datainput by the user and related to the n^(th) image processing parameteris received. Advancing to 1140, an adjusted value of the n^(th) imageprocessing parameter is determined by adjusting the n^(th) imageprocessing parameter default value based on the corresponding imagemodification data.

Proceeding to 1150, the adjusted value associated with the n^(th) imageprocessing parameter is applied to each of M stored images, producing Mmodified images. For example, the M stored images may include imagesidentified by the stored image count module 268 of FIG. 2 to havesimilar characteristics as the current image. In a particularembodiment, the M modified images are displayed and the user is enabledto visually compare each of the M displayed images to its correspondingstored image, at 1150. In a particular illustrative embodiment, eachmodified image is modified by all parameter adjustments that have beenapplied and the modified image has been processed according to apredetermined image processing order. For example, the predeterminedimage processing order can be the order of parameter processing of animage processing pipeline associated with a processor.

The number M is compared to a predetermined count threshold, at 1160. IfM is not greater than or equal to the count threshold, a determinationis made whether there are additional stored images to be used toillustrate an effect of changing the default parameter value to theadjusted value. If another stored image is available, the stored imageis retrieved at 1164 and M is increased to M+1. If there are no otherapplicable stored images available, the method proceeds to 1182.

At 1160, if M is greater than or equal to the count threshold, themethod proceeds to 1170 and a determination is made whether, based onvisual comparison of each of the M displayed images to the correspondingstored image, the user approves saving the adjusted value of the n^(th)image processing parameter. If the user approves, the n^(th) imageprocessing parameter default value is replaced by the adjusted value ofthe n^(th) image processing parameter, at 1180, and the method proceedsto 1182. When the user does not approve saving the n^(th) imageprocessing parameter adjusted value, the method proceeds to 1182, toterminate at 1190 when n is equal to N, or to increment the value of nat 1184 and to return to 1120.

The method shown in FIG. 11 can enable a user to apply an adjusted valueof a particular image processing parameter to a plurality of storedimages in order to decide if the adjusted value of the particular imageprocessing parameter produces more acceptable images to the user thanthe image processing parameter default value and if so, the imageprocessing parameter default value can be replaced by the adjusted valueof the image processing parameter. By applying the adjusted value of theimage processing parameter to a plurality of images and evaluating themodified images, the user can be convinced of a decision to change thedefault value of the image processing parameter to the adjusted value.

Referring to FIG. 12, a block diagram of a particular illustrativeembodiment of an electronic device 1200 including an image processingmodule 1264, a photo album module 1262, and an interface/photo editingmodule 1266 that can tune the image processing module 1264 is depicted.The device 1200 includes a processor 1210, such as a general purposeprocessor, an image processor, a digital signal processor, or anycombination thereof, coupled to a memory 1232 storing code 1280 that maybe executable to implement one or more of the modules 1262-1266. Theprocessor 1210 is also coupled to a camera interface 1268, an audiocontroller 1234, and a display controller 1226. The display controller1226 is coupled to a display 1228. A speaker 1236 and a microphone 1238can be coupled to the audio controller 1234. In an illustrative example,the electronic device 1200 includes one or more of the system 100 ofFIG. 1, the system 200 of FIG. 2, and the portable device 310 of FIG. 3,and the electronic device 1200 operates in accordance with any of FIGS.4-11, or any combination thereof, by modifying stored images or imagesreceived from the camera 1270.

FIG. 12 also indicates that a wireless interface 1240 can be coupled tothe processor 1210 and to a wireless antenna 1242. In a particularembodiment, the processor 1210, the display controller 1226, the camerainterface 1268, the audio controller 1234, the memory 1232, the inputcontroller 1231, and a wireless interface 1240 are included in asystem-in-package or system-on-chip device 1222. In a particularembodiment, a power supply 1244, a camera 1270, a speaker 1236, and amicrophone 1238 are coupled to the system-on-chip device 1222. Moreover,in a particular embodiment, as illustrated in FIG. 12, the display 1228,the input device 1230, the speaker 1236, the microphone 1238, thewireless antenna 1242, and the power supply 1244 are external to thesystem-on-chip device 1222. However, each of the display 1228, the inputdevice 1230, the speaker 1236, the microphone 1238, the wireless antenna1242, the camera 1270, and the power supply 1244 can be coupled to acomponent of the system-on-chip device 1222, such as to an interface orto a controller.

Those of skill would further appreciate that the various illustrativelogical blocks, configurations, modules, circuits, and algorithm stepsdescribed in connection with the embodiments disclosed herein may beimplemented as electronic hardware, computer software executed by aprocessor, or combinations of both. Various illustrative components,blocks, configurations, modules, circuits, and steps have been describedabove generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. Skilled artisans may implement the described functionality invarying ways for each particular application, but such implementationdecisions should not be interpreted as causing a departure from thescope of the present disclosure.

In one or more exemplary embodiments, the functions described may beimplemented in hardware, software, firmware, or any combination thereof.If implemented in software, the functions may be stored on ortransmitted over as one or more instructions or code on acomputer-readable medium. Computer-readable media includes both computerstorage media and communication media including any medium thatfacilitates transfer of a computer program from one place to another. Astorage medium may be any available medium that can be accessed by acomputer. By way of example, and not limitation, such computer-readablemedia can comprise RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage or other magnetic storage devices, or anyother medium that can be used to carry or store desired program code inthe form of instructions or data structures and that can be accessed bya computer. Also, any connection is properly termed a computer-readablemedium. For example, if the software is transmitted from a website,server, or other remote source using a coaxial cable, fiber optic cable,twisted pair, digital subscriber line (DSL), or wireless technologiessuch as infrared, radio, and microwave, then the coaxial cable, fiberoptic cable, twisted pair, DSL, or wireless technologies such asinfrared, radio, and microwave are included in the definition of medium.Disk and disc, as used herein, includes compact disc (CD), laser disc,optical disc, digital versatile disc (DVD), floppy disk and blu-ray discwhere disks usually reproduce data magnetically, while discs reproducedata optically with lasers. Combinations of the above should also beincluded within the scope of computer-readable media.

The steps of a method or algorithm described in connection with theembodiments disclosed herein may be embodied directly in hardware, in asoftware module executed by a processor, or in a combination of the two.A software module may reside in random access memory (RAM), flashmemory, read-only memory (ROM), programmable read-only memory (PROM),erasable programmable read-only memory (EPROM), electrically erasableprogrammable read-only memory (EEPROM), registers, hard disk, aremovable disk, a compact disc read-only memory (CD-ROM), or any otherform of tangible storage medium known in the art. An exemplary storagemedium is coupled to the processor such that the processor can readinformation from, and write information to, the storage medium. In thealternative, the storage medium may be integral to the processor. Theprocessor and the storage medium may reside in an application-specificintegrated circuit (ASIC). The ASIC may reside in a computing device ora user terminal. In the alternative, the processor and the storagemedium may reside as discrete components in a computing device or userterminal.

The previous description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the disclosedembodiments. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the principles defined hereinmay be applied to other embodiments without departing from the scope ofthe disclosure. Thus, the present disclosure is not intended to belimited to the embodiments shown herein but is to be accorded the widestscope possible consistent with the principles and novel features asdefined by the following claims.

1. A method comprising: receiving a selection of a first image from aplurality of images stored at a memory device; displaying the firstimage; receiving image modification data to modify processing of thefirst image displayed; and providing to an image processor an adjustedvalue of an image processing parameter, wherein the adjusted value ofthe image processing parameter is determined based at least in part onthe image modification data.
 2. The method of claim 1, furthercomprising receiving a selection of the image processing parameter via agraphical user interface from a menu that includes a plurality ofdistinct image processing parameters.
 3. The method of claim 1, furthercomprising modifying first image data associated with the first imageaccording to the adjusted value of the image processing parameter toprovide a first modified image.
 4. The method of claim 1, wherein theimage processor, an image capture device coupled to the image processor,and a display device are integrated in a portable electronic device. 5.The method of claim 4, wherein the selection is received via a photoalbum application at the portable electronic device.
 6. The method ofclaim 4, further comprising modifying second image data according to theadjusted value of the image processing parameter, wherein the secondimage data is received from the image capture device and wherein thesecond image data is associated with a second image.
 7. The method ofclaim 4, further comprising modifying a third image at the imageprocessor according to the adjusted value of the image processingparameter after the third image is captured by the image capture device.8. The method of claim 1, wherein the image modification data isgenerated in response to an input entered via a graphical userinterface.
 9. The method of claim 1, wherein the first image isdisplayed according to a default value of the image processingparameter.
 10. An apparatus comprising: a processor; and a memoryaccessible to the processor, wherein the memory includes: a photo albummodule executable by the processor to receive a selection via agraphical user interface (GUI) of a first image selected from aplurality of images stored at the memory and to retrieve the selectionfrom the memory; an interface module executable by the processor todisplay the first image at a display device; and an image processingmodule executable by the processor to receive image modification data tomodify processing of the first image and to provide to the processor anadjusted value of an image processing parameter, wherein the adjustedvalue of the image processing parameter is based at least in part on theimage modification data.
 11. The apparatus of claim 10, wherein theadjusted value of the image processing parameter is threshold value thatindicates an amount of image blurriness acceptable to a user.
 12. Theapparatus of claim 10, wherein the first image is stored as a jointphotographic experts group Opeg) file, and wherein the first image isselected based on at least one data value of an exchangeable image fileformat (EXIF) tag of the jpeg file substantially matching acorresponding value of the first image.
 13. The apparatus of claim 10,wherein the interface module is to provide the adjusted value of theimage processing parameter to the processor in response to receipt of anaffirmative response to a verification prompt that is displayed at thedisplay device.
 14. The apparatus of claim 13, wherein the affirmativeresponse to the verification prompt is associated with a modified secondimage, wherein the modified second image is processed according to theadjusted value of the image processing parameter and is indicated asacceptable to a viewer of the display device.
 15. The apparatus of claim10, further comprising an image capture device coupled to the processorand to a display device, wherein the image capture device is integratedwith the processor in a portable electronic device.
 16. The apparatus ofclaim 15, wherein the first image is displayed at the display deviceaccording to a default value of the image processing parameter.
 17. Acomputer readable medium storing processor-executable instructions that,when executed by a processor, cause the processor to: receive aselection via a graphical user interface (GUI) of a first image from aplurality of images stored at a memory device; display the first image;receive image modification data to modify the first image; and providean adjusted value of an image processing parameter to an imageprocessor, wherein the adjusted value of the image processing parameteris determined based at least in part on the image modification data. 18.The computer readable medium of claim 17, wherein the image processingparameter is one of black level subtraction, geometric lens distortioncorrection, lens rolloff, channel gain, luma adaption, hue, saturation,and intensity.
 19. The computer readable medium of claim 17, wherein theadjusted value of the image processing parameter is associated with asaturation of a memory color.
 20. The computer readable medium of claim19, wherein the memory color is associated with a skin region of thefirst image, a blue sky region of the first image, or a green foliageregion of the first image.
 21. The computer readable medium of claim 17,wherein the image processing parameter is associated with an imagesharpness.
 22. The computer readable medium of claim 17, furthercomprising processor-executable instructions that, when executed by theprocessor, cause the processor to modify a second image from theplurality of images stored at the memory device, wherein the secondimage is modified according to the adjusted value of the imageprocessing parameter.
 23. The computer readable medium of claim 17,wherein the first image is displayed according to a default value of theimage processing parameter.
 24. An apparatus comprising: means forreceiving a selection via a graphical user interface (GUI) of a firstimage selected from a plurality of images stored at a memory device;display means for displaying the first image at a display device; andupdate means for receiving first image modification data to modifyprocessing of the first image prior to displaying a first modified imagethat is based on the first image and for providing to an image processora first adjusted value of a first image processing parameter, whereinthe first adjusted value of the first image processing parameter isbased at least in part on the first image modification data.
 25. Theapparatus of claim 24, further comprising: means for determining whethera count of images within a subset of the plurality of stored imagessatisfies a predetermined count threshold, wherein each image of thesubset has an associated image characteristic and a corresponding imagecharacteristic value that is substantially equal to a first imagecharacteristic value associated with the first image; and means forpreventing the first adjusted value of the first image processingparameter from being provided to the image processor when the count doesnot satisfy the predetermined count threshold.
 26. The apparatus ofclaim 24, wherein the display means includes means for displaying anadjustable control to adjust a parameter selected from black levelsubtraction, geometric lens distortion correction, lens roll-off,channel gain, luma adaption, hue, saturation, and intensity, and whereinthe adjustable control is to provide the first image modification dataassociated with adjustment of the selected parameter via the GUI. 27.The apparatus of claim 24, further comprising image display means fordisplaying a second modified image that is based on a second image thathas been captured by an image capture device and that is modifiedaccording to the first adjusted value of the first image processingparameter.
 28. The apparatus of claim 24, wherein the display meansfurther comprises: means for displaying a first interactive screen toprompt a user to select a first region of interest of the first image;and means for displaying a second interactive screen after displayingthe first interactive screen, the second interactive screen to promptthe user to affirm a value of the first image processing parameter or toinput the first image modification data, wherein the first imageprocessing parameter is associated with a first visual quality of thefirst region of interest.
 29. The apparatus of claim 25, furthercomprising: means for displaying a third interactive screen to promptthe user to select a second region of interest of the first image; andmeans for displaying a fourth interactive screen after displaying thethird interactive screen, the fourth interactive screen to prompt a userto affirm a value of a second image processing parameter or to providesecond image modification data, wherein the second image processingparameter is associated with a second visual quality of the secondregion of interest.
 30. The apparatus of claim 24, wherein the updatemeans includes: means for receiving second image modification data afterreceiving the first image modification data, the second imagemodification data to modify processing of the first image prior todisplaying a second modified image that is based on the first image; andmeans for providing to an image processor a second adjusted value of thefirst image processing parameter that is based at least in part on thesecond image modification data.
 31. The apparatus of claim 30, whereinthe update means includes means for receiving third image modificationdata after receiving the second image modification data, the third imagemodification data to modify processing of the first image prior todisplaying a third modified image that is based on the first image, andmeans for providing to the image processor a third adjusted value of thefirst image processing parameter that is based at least in part on thethird image modification data.
 32. The apparatus of claim 31, furthercomprising comparison means for: comparing the first adjusted value ofthe first image processing parameter with the second adjusted value ofthe first image processing parameter; comparing the first adjusted valueof the first image processing parameter with the third adjusted value ofthe first image processing parameter; and providing a warning inresponse to determining that the first adjusted value of the first imageprocessing parameter is substantially equal to the second adjusted valueof the first image processing parameter, or that the first adjustedvalue of the first image processing parameter is substantially equal tothe third adjusted value of the first image processing parameter. 33.The apparatus of claim 30, wherein the update means further includesmeans for sending the first adjusted value of the first image processingparameter and the second adjusted value of the first image processingparameter to a service provider.